package com.hhc.service;

import com.hhc.dto.AverageScoreDTO;
import com.hhc.dto.GradeDTO;
import com.hhc.dto.GradeListQuery;
import com.hhc.entity.GradeRecordDO;
import com.hhc.utils.RestResult;
import java.util.List;

/**
 * <p>
 *   成绩管理业务逻辑接口
 * </p>
 * @author pc
 */
public interface GradeService {

    /**
     * 录入学生成绩
     * @param gradeDTO 成绩传输对象
     * @param teacherId 教师用户ID
     * @return 返回结果
     */
    RestResult<GradeRecordDO> recordStudentGrade(GradeDTO gradeDTO, Long teacherId);

    /**
     * 查询学生成绩列表
     * @param gradeListQuery 成绩查询参数封装对象
     * @return 返回结果
     */
    RestResult<List<GradeRecordDO>> getStudentGradeList(GradeListQuery gradeListQuery);

    /**
     * 查询课程平均分统计
     * @param courseId 课程ID
     * @return 返回结果
     */
    RestResult<AverageScoreDTO> getCourseAverageScore(Long courseId);

    /**
     * 查询学生成绩详情
     * @param gradeRecordId 成绩记录ID
     * @return 返回结果
     */
    RestResult<GradeRecordDO> getStudentGradeDetail(Long gradeRecordId);
}